.. _cmmIxxHelOnceSetSpeed: cmmIxxHelOnceSetSpeed ======================== ------------------------ SYNOPSIS ``````````` .. code-block:: none VT_I4 cmmIxxHelOnceSetSpeed( [in] VT_I4 HelId, [in] VT_I4 Master, [in] VT_I4 SpeedMode, [in] VT_R8 WorkSpeed, [in] VT_R8 Acc, [in] VT_R8 Dec) DESCRIPTION ````````````````````` - 확장 보간제어 상에서 헬리컬보간 작업을 수행시의 속도패턴을 설정 하거나 설정된 값을 읽어옵니다. PARAMETER ````````````````` - HelId : 속도 설정을 하고자 하는 헬리컬 보간 이송 작업의 아이디를 지정합니다. CMMSDK 는 통합라이브러리이므로 여러 개의 보드가 장착되어 있는 경우에 여러 개의 헬리컬 보간 작업을 동시에 수행할 수도 있습니다. 따라서 각각의 작업을 구분지어줄 아이디가 필요합니다. cmmIxxHelOnce() / cmmIxxHelOnceStart() 의 헬리컬 이송 함수를 실행할 때에도 HelId 를 입력하게 되어 있는데, 여기서 지정한 속도 패턴은 동일한 HelId 가 지정된 헬리컬 이송 함수에서 반영됩니다. \ - Master: cmmIxxHelOnceSetSpeed 함수의 인자이며, 속도 설정의 마스터를 설정합니다. 이 값에 따라서 지정한 속도패턴의 의미가 다음과 같이 달라집니다. .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 0, " | 이 함수를 통하여 설정하는 속도 패턴은 Z축과 U축의 직선 보간에 대한 벡터 속도로 적용됩니다. | (U 축의 이송량은 원호보간의 원주 길이에 해당함.) 만일 Z축이 포함되지 않은 헬리컬 보간이라면 이 | 모드는 Master = 1 로 설정한 것과 동일한 것이 되며 이 함수를 통하여 | 설정하는 속도 패턴은 U 축의 속도로 적용됩니다." 1, " | 이함수를 통하여 설정하는 속도 패턴은 U 축의 속도로 적용됩니다. U 축은 원주 길이에 | 해당하는 이송을 하게 되므로 U 축의 속도는 곧 원호보간의 속도입니다. Z 축의 속도는 | 원주 길이에 대한 상대적인 거리비에 따라 자동으로 결정됩니다. " 2, " | 이 함수를 통하여 설정하는 속도 패턴은 Z 축의 속도로 적용됩니다. 원호보간 속도는 Z 축 | 이동 거리에 대한 상대적인 거리비에 따라 자동으로 결정됩니다. 만일 Z축이 포함되지 않은 | 헬리컬 보간이라면 이 모드는 Master = 1 로 설정한 것과 동일한 것이 되며 U 축의 속도로 적용됩니다." - Master: cmmIxxHelOnceGetSpeed 함수의 인자이며, 마스터 속도 설정을 반환합니다. .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 0, Z 축과 U 축의 직선 보간에 대한 벡터 속도를 마스터 속도로 설정된 상태입니다. 1, 이 함수를 통하여 설정하는 속도 패턴은 U 축의 속도를 마스터 속도로 설정된 상태입니다. 2, 이 함수를 통하여 설정하는 속도 패턴은 Z 축의 속도를 마스터 속도로 설정된 상태입니다. - SpeedMode : cmmIxxHelOnceSetSpeed 함수의 인자이며, 속도 모드를 설정합니다. .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 0 또는 cmSMODE_C, CONSTANT 속도모드 => 가감속을 수행하지 않습니다. 1 또는 cmSMODE_T, TRAPEZOIDAL 속도모드 => 사다리꼴 가감속을 수행합니다. 2 또는 cmSMODE_S, S-CURVE 속도모드 => S-CURVE 가감속을 수행합니다. - SpeedMode : cmmIxxHelOnceGetSpeed 함수의 인자이며, 속도 모드를 반환합니다. .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 0 또는 cmSMODE_C, CONSTANT 속도모드 => 가감속을 수행하지 않습니다. 1 또는 cmSMODE_T, TRAPEZOIDAL 속도모드 => 사다리꼴 가감속을 수행합니다. 2 또는 cmSMODE_S, S-CURVE 속도모드 => S-CURVE 가감속을 수행합니다. - WorkSpeed : cmmIxxHelOnceSetSpeed 함수의 인자이며, 정속도를 지정합니다. \ - WorkSpeed : cmmIxxHelOnceGetSpeed 함수의 인자이며, 지정된 정속도를 반환합니다. \ - Acc : cmmIxxHelOnceSetSpeed 함수의 인자이며, 가속도를 지정합니다. 단, 이 값을 0 으로 설정하면 가속구간이 없이 즉시 작업속도로 올라갑니다(실제로는 가속값이 무한대). \ - Acc : cmmIxxHelOnceGetSpeed 함수의 인자이며, 가속도를 반환합니다. \ - Dec : cmmIxxHelOnceSetSpeed 함수의 인자이며, 감속도를 지정합니다. 단, 이 값을 0 으로 설정하면 감속구간이 없이 즉시 정지합니다(실제로는 감속값이 무한대). \ - Dec : cmmIxxHelOnceGetSpeed 함수의 인자이며, 감속도를 반환합니다. EXAMPLE ````````` 아래의 코드는 360 도 원을 그리면서 Z 축도 +3000 만큼 이송하는 헬리컬 보간을 수행하는 예입니다. 이때 Z 축 속도를 V=5000, ACC=DEC=25000 으로 설정하고, 원호보간 속도는 원주 길이와 Z 축 이동거리의 비에 따라 자동으로 설정되도록 합니다. .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #define HEL_ID 0 // Helical ID cmmIxxHelOnceSetSpeed(HEL_ID, 2, cmSMODE_S, 5000, 25000, 25000); long nAxes[4] = {0, 1, 2, 3}; double fCoords[4] = {5000, 5000, 3000, cmDIR_P}; cmmIxxHelOnce(HEL_ID, 4, nAxes, fCoords, 360, NULL, TRUE); … .. code-block:: none :linenos: Visual Basic ‘HEL_ID 는 이미 선언되어 있다고 가정함. Dim arrayAxes(4) As Long Dim fCoords(4) As Double arrayAxes(0) = 0 arrayAxes(1) = 1 arrayAxes(2) = 2 arrayAxes(3) = 3 fCoords(0) = 5000 fCoords(1) = 5000 fCoords(2) = 3000 fCoords(3) = cmDIR_P Call cmmIxxHelOnceSetSpeed(HEL_ID, cmSMODE_S, 5000, 25000, 25000) Call cmmIxxHelOnce(HEL_ID, 4, arrayAxes(0), fCoords(0), 360, 0, True) .. code-block:: none :linenos: Delphi Const HEL_ID = 0; // Helical ID var nAxes : Array[0..3] of LongInt; fCoords : Array[0..3] of Double; begin nAxes[0] := 0; nAxes[1] := 1; nAxes[2] := 2; nAxes[3] := 3; fCoords[0] := 5000; fCoords[1] := 5000; fCoords[2] := 3000; fCoords[3] := cmDIR_P; cmmIxxHelOnce(HEL_ID, 4, @nAxes, @fCoords, 360, NIL , cmTRUE); end; .. seealso:: :ref:`cmmIxxHelOnceGetSpeed`